% 在本地编译时，采用XeLaTeX编译，pdfLaTeX可能编译失败

\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{left=2.0cm,right=2.0cm,top=2.5cm,bottom=2.5cm}

\usepackage{ctex}
\usepackage{comment}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{diagbox}
\usepackage{amsmath,amsfonts,graphicx,amssymb,bm,amsthm}
\usepackage{algorithm,algorithmicx}
\usepackage[noend]{algpseudocode}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{arrows,automata}
\usepackage{hyperref}

\setlength{\headheight}{14pt}

\newcounter{counter_exm}\setcounter{counter_exm}{1}
%\newcounter{counter_thm}\setcounter{counter_thm}{1}
%\newcounter{counter_lma}\setcounter{counter_lma}{1}
%\newcounter{counter_dft}\setcounter{counter_dft}{1}
%\newcounter{counter_clm}\setcounter{counter_clm}{1}
%\newcounter{counter_cly}\setcounter{counter_cly}{1}

\newtheorem{theorem}{\hskip 1.7em 定理}
\newtheorem{lemma}[theorem]{\hskip 1.7em 引理}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{claim}[theorem]{\hskip 1.7em 命题}
\newtheorem{corollary}[theorem]{\hskip 1.7em 推论}
\newtheorem{definition}[theorem]{\hskip 1.7em 定义}

\renewcommand{\emph}[1]{\begin{kaishu}#1\end{kaishu}}

\newenvironment{solution}{{\noindent\hskip 2em \bf 解 \quad}}


\renewenvironment{proof}{{\noindent\hskip 2em \bf 证明 \quad}}{\hfill$\qed$\par}
\newenvironment{example}{{\noindent\hskip 2em \bf 例 \arabic{counter_exm}\quad}}{\addtocounter{counter_exm}{1}\par}

\newenvironment{concept}[1]{{\bf #1\quad} \begin{kaishu}} {\end{kaishu}\par}

\newcommand\E{\mathbb{E}}

% 以上是预定义宏等设置,在不熟悉LaTeX的情况下可不作修改.

% TODO: 在此处更改第X讲
\title{算法设计初步第X讲}
\usetikzlibrary{positioning}

\begin{document}

    \pagestyle{fancy}
    \lhead{\kaishu 杭州师范大学}
    \chead{}
    \rhead{\kaishu 2020年秋季学期算法设计初步}

    % TODO: 在此处更改第X讲、授课时间与记录人
    \begin{center}
        {\LARGE \bf 算法设计初步第X讲}\\
    \end{center}
        \begin{kaishu}
            授课时间: 2020年MM月DD日\quad
            授课教师: 张仁军
            \hfill 记录人: XXX
        \end{kaishu}
    
    %%%%%%%%%%%%%%%%%%%%% Your note starts from here %%%%%%%%%%%%%%%%%%%%%

    \section{Scribe Note列表}
    
    \begin{itemize}
        \item 第一次课（第一周）：[王同学]，[陈同学]，
        \item 第二次课（第二周）：
        \item 第三次课（第三周）：
        \item 第四次课（第三周）：

        
    \end{itemize}
    
    \section{评分标准}
    
    \begin{itemize}
        \item 期中 ...
        \item 期末 ...
        \item 作业 ...
        \item Scribe Note：10\%（建议每次课负责的同学在上完课之后的一周内完成，方便同学复习）
        \item 加分
        \begin{itemize}
            \item Bonus Problems
        \end{itemize}
    \end{itemize}
    
    \section{作业提交}
    
    \begin{itemize}
        \item 提交方式：使用XXX提交。
        \item 提交格式：使用PDF格式，tex格式编译成PDF以后提交。
        \item 评分标准：每次作业满分XX分，按正确性给分。
    \end{itemize}
    

    \section{如何在Overleaf上使用本模板？}
    
    在左侧点击New File图标，新建文件LecX.tex，其中X是课次，将本模板复制进去。填写需要填写的信息，清空正文部分，就可以开始写了。
    
    如果是在本地编译：编译采用的是Xe\LaTeX ，本地编译采用pdf\LaTeX 可能失败。
    
    \section{如何使用\LaTeX 画自动机？}
    
    使用tikz包。如下为样例代码：
    
    \begin{tikzpicture}[shorten >=1pt, node distance=5.4cm, >=stealth', auto, every state/.style={thin}]
		\node[state,initial] (0) at (0,0) {$q_0$};
		\node[state] (1) [right of=0] {$q_1$};
		\node[state,accepting] (2) [right of=1] {$q_2$};
		
		\path[->]
		(0) edge[bend right] node[below]{$\varepsilon$} (1)
		(1) edge[bend right] node[below]{$\varepsilon$} (2)
		(2) edge[bend right] node[above]{$\varepsilon$} (1)
		(1) edge[bend right] node[above]{$\varepsilon$} (0)
		(0) edge node{0} (1)
		(1) edge node{1} (2)
		;
	\end{tikzpicture}
	
	\section{如何在转移边上多行书写？}
	
	使用\texttt{$\backslash$shortstack[l]}。如下为样例代码：
	
	\begin{tikzpicture}[shorten >=1pt, node distance=1.8cm, >=stealth', auto, every state/.style={thin}]
		\node[state,initial,accepting] (0) at (0,0) {$q_0$};
		\node[state] (1) at (3,3) {$q_a$};
		\node[state] (2) at (3,-3) {$q_b$};
		\node[state] (3) at (6,0) {$q_m$};
        \
		\path[->]
		(0) edge[bend left=5] node[above left]{$0,Z_0/+Z_0$} (1)
			edge[bend right=5] node[below left]{$1,Z_0/--Z_0$} (2)
		(1) edge[bend left=5] node[above right]{$1,+/\varepsilon$} (3)
			edge[bend left=5] node[below right]{$\varepsilon,Z_0/Z_0$} (0)
			edge[loop above] node{$0,+/++$} ()
		(2) edge[bend right=5] node[above right]{$\varepsilon,Z_0/Z_0$} (0)
			edge[loop below] node{\shortstack[l]{$0,-/\varepsilon$ \\ $1,-/---$}} ()
		(3) edge[bend left=5] node{$\varepsilon,+/\varepsilon$} (1)
			edge node{$\varepsilon,Z_0/-Z_0$} (2)
		
		;
	\end{tikzpicture}
    
    \section{如何用tikz优雅地画其他图形？}
    
    遇事不决就Google.
    
    或者推荐：\texttt{https://www.mathcha.io/}
    
    \section{如何优雅地书写定理、定义、证明？}
    
    使用以下常用的环境：
    
    % 使用环境theorem给出定理（以及corollary表示推论、claim表示断言）
    \begin{theorem}
    	\[
            (1+x)^\alpha=\sum_{n\geq 0}{\binom{\alpha}{n}}x^n.
        \]
    \end{theorem}

    % 使用环境proof给出证明
	\begin{proof}
	    $$
            \sum_{k=0}^{l} \binom{n}{k} \binom{m}{l-1} = { \binom{n+m}{l} }.
        $$
	\end{proof}
	
	% 使用环境definition给出定义
	\begin{definition}
		$n^{\underline{m}}:=n(n-1)\cdots (n-m+1)$.
	\end{definition}

    % 使用环境example给出例子
	\begin{example}
		$n$对夫妇围着一个圆桌共进晚餐，要求夫妻必须相邻，试问共有多少种不同的就坐方式？
	\end{example}
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%% End %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
\end{document}